//
//  NetworkStatusViewController.m
//  BetterGolfScore
//
//  Created by Eberhard Rensch on 25.08.08.
//  Copyright 2008 E.R.S. All rights reserved.
//
// Plugin for iMedia Browser
//
// iMedia Browser is based on code originally developed by Jason Terhorst,
// further developed for Sandvox by Greg Hulands, Dan Wood, and Terrence Talbot.
// Contributions have also been made by Matt Gough, Martin Wennerberg and others
// as indicated in source files.
// 
// The iMedia Browser Framework is licensed under the following terms:
// 
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in all or substantial portions of the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the following
// conditions:
// 
//	Redistributions of source code must retain the original terms stated here,
//	including this list of conditions, the disclaimer noted below, and the
//	following copyright notice: Copyright (c) 2008 by Pleasant Software
// 
//	Redistributions in binary form must include, in an end-user-visible manner,
//	e.g., About window, Acknowledgments window, or similar, the original
//	terms stated here, including this list of conditions, the disclaimer noted
//	below, and the aforementioned copyright notice.
// 
//	Neither the name of Pleasant Software, nor the names of
//	contributors to iMedia Browser may be used to endorse or promote products
//	derived from the Software without prior and express written permission from
//	Pleasant Software or individual contributors, as appropriate.
// 
// Disclaimer: THE SOFTWARE IS PROVIDED BY THE COPYRIGHT OWNER AND CONTRIBUTORS
// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
// AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN ACTION OF
// CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN CONNECTION WITH, THE
// SOFTWARE OR THE USE OF, OR OTHER DEALINGS IN, THE SOFTWARE.
//

#import "NetworkStatusViewController.h"
#import "SampleServerAppAppDelegate.h"
#import "iMBiPhoneViewServer.h"

@implementation NetworkStatusViewController
@synthesize authCode;
@synthesize connectionName;
@synthesize activity;

- (id)init {
	if (self = [super initWithNibName:@"NetworkStatusView" bundle:nil]) {
		// Initialization code
	}
	return self;
}

- (void)loadView 
{
	[super loadView];
	self.view.frame = CGRectMake(0,20,320,460);
	[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChanged:) name:UITextFieldTextDidChangeNotification object:authcodeEdit];
	connectionNameLabel.text = connectionName;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
	// Return YES for supported orientations
	return (interfaceOrientation == UIInterfaceOrientationPortrait);
}


- (void)didReceiveMemoryWarning {
	[super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
	// Release anything that's not essential, such as cached data
}

- (void)textChanged:(NSNotification*)notify
{
	if(authcodeEdit.text.length>3)
	{
		[authcodeEdit resignFirstResponder];
		[authcodeSubView setHidden:YES];
		SampleServerAppAppDelegate* appDel = (SampleServerAppAppDelegate*)[[UIApplication sharedApplication] delegate];
		BOOL auth = [authcodeEdit.text isEqualToString:self.authCode];
		[appDel.bonjourService setAuthenticationStatus:auth permanent:permanent.on];
		if(auth)
			[activity startAnimating];

	}
}

- (void)dealloc {
	[[NSNotificationCenter defaultCenter] removeObserver:self];
	[authCode release];
	[connectionName release];
	[super dealloc];
}

- (IBAction)cancel:(id)sender
{
	SampleServerAppAppDelegate* appDel = (SampleServerAppAppDelegate*)[[UIApplication sharedApplication] delegate];
	[appDel disconnectNetworkConnections];
}

- (void)setConnectionName:(NSString*)name
{
	[connectionName release];
	connectionName=nil;
	if(name)
	{
		connectionName = [name copy];
		connectionNameLabel.text = name;
	}
	else
	{
		connectionNameLabel.text = NSLocalizedString(@"Disconnected", @"");
	}
}

- (void)promptForAuthCode:(NSString*)code
{
	self.authCode = code;
	authcodeEdit.text=@"";
	authcodeSubView.hidden = NO;
	[activity stopAnimating];
	[authcodeEdit becomeFirstResponder];
}
@end
